<?php
namespace App\Http\Controllers\home;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
use Hash;
use App\Http\Org\Ucpaas;


class UserController extends Controller
{
    /* 
    *遍历数据
    *users 用户信息表
    *user用户表
    *types 视频类名
    *record 记录
    *collections 收藏
    *message消息
    *uvideo我的视频
    *vcomment我的评论
    */
    //隐式控制器中间件(在该隐式控制器的方法里加上如下代码,就可以限定该隐式控制器的所有方法)
    protected $middleware = ['App\Http\Middleware\LoginMiddleware'=>[]];
    public function getIndex(Request $request)
    {
        $id = session('uid');

    	$users = DB::table('userdetail')
                ->where('uid',$id)
                ->get();
        $user=DB::table('user')
                ->where('id',$id)
                 ->get();       
    
        $record=DB::table('record')
    			->join('video','record.vid', '=', 'video.id')
    			->where('record.uid','=',$id)
    			->get();

    	$collections=DB::table('video')
    				->join('collection','collection.vid', '=', 'video.id')
    				->where('collection.uid','=',$id)
    				->get();
    	$message=DB::table('message')
    				->where('message.uid','=',$id)
    				->paginate(5);
    	$uvideo = DB::table('video')
                ->where('uid', $id)
                ->get();
        $vcomment=DB::table('vcomment')
    				->join('video','vcomment.vid', '=', 'video.id')
    				->where('vcomment.uid','=',$id)
    				->get();
        $poters=DB::table('userdetail')
                ->where('uid','=',$id)
                ->get();
        $ad=DB::table('ad')
                ->where('uid','=',$id)
                ->get();
        

				//获取所有的请求参数
        
         return view('home.user.geren',['users'=>$users,'ad'=>$ad,'user'=>$user,'poters'=>$poters,'record'=>$record,'collections'=>$collections,'message'=>$message,'uvideo'=>$uvideo,'vcomment'=>$vcomment]);
        // return view('home/user.geren');
	}
    /* 删除
    *$res收藏表删除 
    */
	 public function getDel(Request $request)
    {

        //接收数据
         $id =$request->input("id");
        $res = DB::table('collection')
        ->where('id','=',$id)
        ->delete();

        if($res)
        {
            return redirect('geren#three')->with('success','用户删除成功');
        }else{
            return redirect('geren#three')->with('error','用户删除失败');
        }
	}
        // 删除我的视频
        // $res连接DB库删除
        
	 public function getDelete(Request $request)
    {
    	
        //接收数据
         $id =$request->input("id");
        $res = DB::table('video')
        ->where('id','=',$id)
        ->delete();
         $a=DB::table('collection')
        ->where('vid','=',$id)
        ->delete();
        if($res)
        {
            return redirect('geren#five')->with('success','视频删除成功');
        }else{
            return redirect('geren$five')->with('error','视频删除失败');
        }
	}
    /*
    我的信息删除
    $res连接我的信息删除
    */
	 public function getDele(Request $request)
    {
    	
        //接收数据
         $id =$request->input("id");
        $res = DB::table('message')
        ->where('id','=',$id)
        ->delete();

        if($res)
        {
            return redirect('geren')->with('success','信息删除成功');
        }else{
            return redirect('geren')->with('error','信息删除失败');
        }
	}
    /*
    上传图片insert
    $res为修改的图片名称

    */
    public function postInsert(Request $request)
    {   
         $id = session('uid');
        //获取信息
        $data = $request->except(['_token']);
          // dd($data);
        
        //调用图片路径信息
        
        $data['portrait'] = $this->ppload($request);

        
        //添加到数据库
        $res = DB::table('userdetail')->where('uid',$id)->update($data);
       
        //判断
        if($res){
            return redirect('geren/index');
        }else{
            return back()->withInput();
        }

    }
    // 获取vip信息
    //id为用户id
    // res为修改vip时间戳
    public function getVip(Request $request)
    {   
        //获取信息
        $k=2;
        $id = session('uid');
        $vip = $request->input('vip');
        $res = DB::table('userdetail')
        ->where('uid','=',$id)
        ->update(['vip'=>$vip]);

        $zxc= DB::table('user')
        ->where('id','=',$id)
        ->update(['auth'=>$k]);
    $time=time();
            $zxc='恭喜vip开通成功';
        $ccc=DB::table('message')
        ->insert(['uid'=>$id,'message'=>$zxc,'ctime'=>$time]);

        if($res)
        {
            return redirect('geren')->with('success','信息删除成功');
        }else{
            return redirect('geren')->with('error','信息删除失败');
        }
    }
    //获取vip到期时间等信息
     public function getViip(Request $request)
    {   
        $k=2;
        //获取信息
         $id = session('uid');
        $vip = $request->input('vip');
        $user = DB::table('userdetail')
        ->where('uid','=',$id)
         ->get(['vip']);
      
        $user=$user[0]->vip;
        $user=$vip+$user;
        $res = DB::table('userdetail')
        ->where('uid','=',$id)
        ->update(['vip'=>$user]);
 $time=time();
            $zxc='恭喜vip续费成功';
        $ccc=DB::table('message')
        ->insert(['uid'=>$id,'message'=>$zxc,'ctime'=>$time]);

        if($res)
        {
            return redirect('geren')->with('success','信息删除成功');
        }else{
            return redirect('geren')->with('error','信息删除失败');
        }
    }
    //post方法上传视频文件

     public function postVio(Request $request)
    {   
         $id = session('uid');
        //获取信息
        $data = $request->except(['_token']);

        //调用图片路径信息
        $data['upload'] = $this->viload($request);
        $data['url'] = $this->doload($request);
        $data['tid'] =4;
         $data['uid'] =$id;
       // dd($data);
        //添加到数据库
        $res = DB::table('video')->insertGetId($data);
       
        //判断
        if($res){
            return redirect('geren/index');
        }else{
            return back()->withInput();
        }

    }
    //为图片准备的图片上传函数
    /*
    $name随机生成的文件名
    $suffix文件后戳
    $arr文件格式
    */
    public function ppload(Request $request)
    {
        //判断文件是否上传
        if($request->hasFile('portrait')){
            //随机生成文件名
            $name = md5(time()+rand(100000,999999));
            //获取文件后缀名
            $suffix = $request->file('portrait')->getClientOriginalExtension();
            //文件格式
            $arr = ['png','jpg','jpeg','gif'];
            //判断文件格式是否正确
            if(!in_array($suffix,$arr)){
                return back()->with('error','上传文件格式不正确');
            }
            
            //上传到指定路径
            $request->file('portrait')->move('./public/portrait/',$name.'.'.$suffix);
          
            //返回路径
            // dd($request->file('url'));
            return '/public/portrait/'.$name.'.'.$suffix;
        }
    }


    //为视频准备的图片上传函数
    /*
    $name随机生成的文件名
    $suffix文件后戳
    $arr文件格式
    */
    public function doload(Request $request)
    {
        //判断文件是否上传
        if($request->hasFile('url')){
            //随机生成文件名
            $name = md5(time()+rand(100000,999999));
            //获取文件后缀名
            $suffix = $request->file('url')->getClientOriginalExtension();
            //文件格式
            $arr = ['png','jpg','jpeg','gif'];
            //判断文件格式是否正确
            if(!in_array($suffix,$arr)){
                return back()->with('error','上传文件格式不正确');
            }
            
            //上传到指定路径
            $request->file('url')->move('./public/portrait/',$name.'.'.$suffix);
          
            //返回路径
            // dd($request->file('url'));
            return '/public/portrait/'.$name.'.'.$suffix;
        }
    }
 //视频上传函数
    /*
    $name随机生成的文件名
    $suffix文件后戳
    $arr文件格式
    */
     public function viload(Request $request)
    {
        //判断文件是否上传
        if($request->hasFile('upload')){
            //随机生成文件名
            $name = md5(time()+rand(100000,999999));
            //获取文件后缀名
            $suffix = $request->file('upload')->getClientOriginalExtension();
            //文件格式
            $arr = ['rm','rmvb','wmv','avi','mp4','3gp','mkv','rpm'];
            //判断文件格式是否正确
            if(!in_array($suffix,$arr)){
                return back()->with('error','上传文件格式不正确');
            }
            
            //上传到指定路径
            $request->file('upload')->move('./public/video/',$name.'.'.$suffix);
          
            //返回路径
            // dd($request->file('url'));
            return '/public/video/'.$name.'.'.$suffix;
        }
    }
    //要用ajax进行修改个人信息
     public function postXinxi(Request $request)
    {

        //获取id;
         $id = session('uid');
        // //获取用户名密码
        $data = $request->except(['_token']);
            
        // //查询改用户名
        $res=DB::table('userdetail')
           ->where('uid','=',$id)
            ->update($data);

        if($res){

            echo 1;
        }else{

            echo 0;
        }
    }

     // //用户改密码
    public function postRegister(Request $request)
    {
        $id = session('uid');
        //哈希加密
          $data = $request->except(['_token']);
       $data['password'] = Hash::make($data['password']);

        $res = DB::table('user')
        ->where('id','=',$id)
        ->update($data);
      
       //判断验证码
          if($res){
              //用户添加成功后给用户添加5经验
              
              echo 1;
          }else{
              echo 0;
          }
       }

       //广告添加
            public function postAd(Request $request)
    {   

         $id = session('uid');
        //获取信息
        $data = $request->except(['_token']);

        //调用图片路径信息
        $data['content'] = $this->ppzzload($request);

        $data['uid']=$id;
       // dd($data);
        //添加到数据库
         $res = DB::table('ad')
        ->insertGetId($data);
       
        //判断
        if($res){
            return redirect('geren/index');
        }else{
            return back()->withInput();
        }

    }
           //广告修改
            public function postAdd(Request $request)
    {   
          
        //获取信息
        $data = $request->except(['_token']);
      
        //调用图片路径信息
        $data['content'] = $this->ppzzload($request);
        $id=$data['id'];
       // dd($data);
        //添加到数据库
         $res = DB::table('ad')
        ->where('id','=',$id)
        ->update($data);
       
        //判断
        if($res){
            return redirect('geren/index');
        }else{
            return back()->withInput();
        }

    }
      //为图片准备的图片上传函数
    /*
    $name随机生成的文件名
    $suffix文件后戳
    $arr文件格式
    */
    public function ppzzload(Request $request)
    {
        //判断文件是否上传
        if($request->hasFile('content')){
            //随机生成文件名
            $name = md5(time()+rand(100000,999999));
            //获取文件后缀名
            $suffix = $request->file('content')->getClientOriginalExtension();
            //文件格式
            $arr = ['png','jpg','jpeg','gif'];
            //判断文件格式是否正确
            if(!in_array($suffix,$arr)){
                return back()->with('error','上传文件格式不正确');
            }
            
            //上传到指定路径
            $request->file('content')->move('./public/ad/',$name.'.'.$suffix);
          
            //返回路径
            // dd($request->file('url'));
            return '/public/ad/'.$name.'.'.$suffix;
        }
    }
    //广告充值
    //$ccc加入时间戳,用户id和信息
    public function getBbb(Request $request){
           $k=2;
       $id = $request->input('id');
 $uid = session('uid');
        $ctime = $request->input('ctime');

        $res = DB::table('ad')
        ->where('id','=',$id)
        ->update(['ctime'=>$ctime]);

    $time=time();
            $zxc='恭喜广告续费成功';
        $ccc=DB::table('message')
        ->insert(['uid'=>$uid,'message'=>$zxc,'ctime'=>$time]);

        if($res)
        {
            return redirect('geren')->with('success','信息删除成功');
        }else{
            return redirect('geren')->with('error','信息删除失败');
        }
    }
    //广告续费
    //$ccc加上时间戳,用户id和信息
      public function getBbbb(Request $request){
           $k=2;
       $id = $request->input('id');
 $uid = session('uid');
        $ctime = $request->input('ctime');
         $res = DB::table('ad')
        ->where('id','=',$id)
        ->get(['ctime']);
        $res=$res[0]->ctime;
        $ctime=$ctime+$res;
        $res = DB::table('ad')
        ->where('id','=',$id)
        ->update(['ctime'=>$ctime]);

    $time=time();
            $zxc='恭喜广告续费成功';
        $ccc=DB::table('message')
        ->insert(['uid'=>$uid,'message'=>$zxc,'ctime'=>$time]);

        if($res)
        {
            return redirect('geren')->with('success','信息删除成功');
        }else{
            return redirect('geren')->with('error','信息删除失败');
        }
    }

        // ===================================获取手机验证码===========================================
        //验证码
        public function getYzm(Request $request)
        {

         //接收要发送验证码的手机号
         $phone = $request->input('phone');
          //初始化必填
          $options['accountsid']='1351b3e15b53332b9f9dba3f45635c62';
          $options['token']='02b65fcde0d8556f161f82bee9e7210a';

          //初始化 $options必填
          $ucpass = new Ucpaas($options);

          //开发者账号信息查询默认为json或xml

         $ucpass->getDevinfo('json');

          //短信验证码（模板短信）,默认以65个汉字（同65个英文）为一条（可容纳字数受您应用名称占用字符影响），超过长度短信平台将会自动分割为多条发送。分割后的多条短信将按照具体占用条数计费。
         $appId = "51db68b38c63432891864a1c52365761";
         $to = $phone;
         $templateId = "40055";
         $code = rand(10000,99999);

        //密码修改重新定义云之讯模板

         $param=$code;
          $ucpass->templateSMS($appId,$to,$templateId,$param);
         session(['passcode'=>$param]);
         echo $code;
        }

        // ==================================验证码验证=========================================================

        //验证码对比
        public function postContrast(Request $request)
        {
         //获取注册页输入验证码和session对比,正确返回1,错伏返回0
         $getcode = $request->input('code');
         $code = session('passcode');
         if($getcode == $code){
             echo 1;
         }else{
           echo 0;
         }
     }

         // =====================================修改密码==========================================================
        public function editpass(Request $request)
        {

            //前台判断不能与原密码相同

            //获取密码

            //判断密码合法性

            //插入数据库

        }
        
}

